//
//  LocalNotificationService.m
//  investevent
//
//  Created by jiangshao on 16/3/14.
//  Copyright © 2016年 com.scj.investevent. All rights reserved.
//

#import "LocalNotificationService.h"

@implementation LocalNotificationService

// 设置本地通知
+ (void)registerLocalNotification:(NSMutableArray *)datas{
    
    // ios8后，需要添加这个注册，才能得到授权
    if ([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)]) {
        UIUserNotificationType type =  UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound;
        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:type
                                                                                 categories:nil];
        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
        // 通知重复提示的单位，可以是天、周、月
//        notification.repeatInterval = NSCalendarUnitDay;
    } else {
        // 通知重复提示的单位，可以是天、周、月
//        notification.repeatInterval = NSDayCalendarUnit;
    }
    
    for (int i=0; i<datas.count; i++) {
        
        NSDictionary *data=datas[i];
        
        NSString *code=[data objectForKey:@"sgdm"];
        NSString *date=[data objectForKey:@"sgrq"];
        NSString *name=[data objectForKey:@"zqjc"];
        
        date=[NSString stringWithFormat:@"%@ 13:41:00",date ];
        
        UILocalNotification *notification = [[UILocalNotification alloc] init];
        // 设置触发通知的时间
        NSDate *fireDate =[NSDate dateFromString:date format:@"yyyy-MM-dd HH:mm:ss"];
        NSLog(@"fireDate=%@",fireDate);
        
        notification.fireDate = fireDate;
        // 时区
        notification.timeZone = [NSTimeZone defaultTimeZone];
        // 通知内容
        notification.alertBody =[NSString stringWithFormat:@"[ %@今日申购] 申购代码 %@",name,code];
//        notification.applicationIconBadgeNumber = 1;
        // 通知被触发时播放的声音
        notification.soundName = UILocalNotificationDefaultSoundName;
        // 通知参数
        NSDictionary *userDict = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:@"你有新股可以申购 申购代码 %@, 股票名称 %@",code,name ] forKey:@"key"];
        notification.userInfo = userDict;
        // 执行通知注册
        [[UIApplication sharedApplication] scheduleLocalNotification:notification];
    }
}


// 取消某个本地推送通知
+ (void)cancelLocalNotificationWithKey:(NSString *)key {
    // 获取所有本地通知数组
    NSArray *localNotifications = [UIApplication sharedApplication].scheduledLocalNotifications;
    
    for (UILocalNotification *notification in localNotifications) {
        NSDictionary *userInfo = notification.userInfo;
        if (userInfo) {
            // 根据设置通知参数时指定的key来获取通知参数
            NSString *info = userInfo[key];
            // 如果找到需要取消的通知，则取消
            if (info != nil) {
                [[UIApplication sharedApplication] cancelLocalNotification:notification];
                break;  
            }  
        }  
    }  
}


// 取消某个本地推送通知
+ (void)cancelAllLocalNotification{
    // 获取所有本地通知数组
    NSArray *localNotifications = [UIApplication sharedApplication].scheduledLocalNotifications;
    for (UILocalNotification *notification in localNotifications) {
//        NSDictionary *userInfo = notification.userInfo;
        [[UIApplication sharedApplication] cancelLocalNotification:notification];
    }
}

@end
